"""
@author: ztt
@file: 11-04-zuoye.py
@time: 2022/11/6 19:38
"""

"""
#1、字典底层实现原理
"""

"""
#2、圣诞节送礼物题目
# 互送礼活动
# 圣诞节到了，公司开展一个互送礼物活动。每个员工系统会随机抽取一位送礼物的对象，送礼对象不能重复。最终每个人都能送出和收到一份礼物。
# 定义好公司员工名单
# 循环系统会随机抽取一位收礼物的人
# 打印最终的送礼和收礼的关系

dict = {"A":1, "B":2, "C":3, "D":4, "E":5}
gift = {}
persons = list(dict.keys())
for i in persons:
    flag = 0  # 标记自己带来的礼物是否还未分配出去
    if i in dict:
        flag = 1
        myGift = dict.pop(i)  # 如果自己带来的礼物还未分配，则去掉该礼物
        getGift = dict.popitem()  # 随机返回并移除一对key-value值
        gift[i] = getGift[1]  # 得到的礼物
    if flag:
        dict[i] = myGift  # 将自己的礼物添到未分配礼物中

print(gift)  # 输出礼物分配情况
"""

"""
#3、随机点名系统， 可以支持请假，抽点过了之后就不用再点了

import random

allstu = ["z", "x", "c", "v", "b", "n", "m", "a","s", "d"]
leave = input("请假人员名单：").split()
print(f"请假人员：{leave}")
nowstu = set(allstu) - set(leave)
new_list = list(nowstu)
while True:
    if len(new_list) == 0:
        print("全部抽完啦")
        break
    num = random.randint(0, len(new_list)-1)
    a = input("输入q退出，其他继续：")
    if a == "q":
        print("退出")
        break
    else:
        print(f"请 {new_list[num]} 回答问题")
        new_list.pop(num)
        print()
"""

"""
#4、写一个三乐购物系统
    #  欢迎提示语
    #1、登录
       #1、查看商品列表（ 种类  ，价钱）
    #2、注册  -- 文件   用户名，密码，账号余额

import json
user = {}
num1 = 1

def shopping():
    commodity = {"苹果":3, "橘子":5, "梨子":4, "葡萄":6, "芒果":8, "西瓜":15}
    for key, value in commodity.items():
        print(key, " ￥", value)


def regist():
    print("注册".center(30,"-"))
    with open('用户信息.txt', 'a') as file:
        username = input("请输入用户名：")
        passwd = input("请输入密码：")
        money = input("请输入金额：")
        user[username] = {"passwd": passwd, "money": money}
        file.write(json.dumps(user))
        file.write('\n')
        print("注册成功")
        print("-"*60)


def login(username, passwd):

    user_message = open("用户信息.txt", 'r')
    lines = user_message.readlines()
    message = {}
    for line in lines:
        message_1 = eval(line)
        message = dict(message, **message_1)
    if username in message and passwd == message[username]['passwd']:
        print("登录成功")
        print(f"欢迎光临！你的余额为：{message[username]['money']}")
        return True
    elif username in message and passwd != message[username]['passwd']:
        print("密码错误")
    else:
        num3 = input("用户不存在，按 1 注册:")
        if num3 == "1":
            regist()

print("欢迎进入三乐购物系统".center(50,"-"))
while True:
    print("1、登录".center(50))
    print("2、注册".center(50))
    print("3、退出".center(50))
    num = input("请选择您需要的操作：")
    if num == "1":
        print("登录".center(30, "-"))
        username = input("请输入用户名：")
        passwd = input("请输入密码：")
        if login(username, passwd):
            num2 = input("输入1查看商品列表,其它退出:")
            if num2 == "1":
                print("商品列表".center(30,"-"))
                shopping()
                break
            else:
                break
    elif num == "2":
        regist()
    elif num == "3":
        break
    else:
        print("请输入 1 或 2 或 3")
"""

"""
#5、学习go里面的数组、切片、map
"""

dict = {"A":1, "B":2, "C":3, "D":4, "E":5}
gift = {}
persons = list(dict.keys())
for i in persons:
    flag = 0  # 标记自己带来的礼物是否还未分配出去
    if i in dict:
        flag = 1
        myGift = dict.pop(i)  # 如果自己带来的礼物还未分配，则去掉该礼物
        getGift = dict.popitem()  # 随机返回并移除一对key-value值
        gift[i] = getGift[1]  # 得到的礼物
    if flag:
        dict[i] = myGift  # 将自己的礼物添到未分配礼物中

print(gift)  # 输出礼物分配情况